package com.telit.dispose.service.resourceManagement;

import com.telit.common.entity.PageData;
import com.telit.dispose.dto.FireResourceCategoryDTO;
import com.telit.dispose.entity.FireResourceCategory;
import com.telit.dispose.model.QryDeviceListRequest;
import com.telit.dispose.model.QryDeviceModel;
import com.telit.dispose.model.QryResourceListRequest;
import com.telit.dispose.model.QryResourceModel;
import com.telit.dispose.resource.QryCatListRequest;
import com.telit.dispose.vo.resourceManagement.FireSituationVO;
import com.telit.dispose.vo.resourceManagement.ResourceCategoryVO;
import com.telit.dispose.vo.resourceManagement.ResourceSimpVO;
import com.telit.dispose.vo.resourceManagement.TopFloorDownDistrictCodeVO;

import java.util.List;
import java.util.Map;


/**
 * 防火资源
 *
 * @author yuezhuang
 * @date 2022-08-29
 */
public interface FireResourceService {


    /**
     * 新增防火资源
     *
     * @param fireResourceCategory
     */
    void addResource(FireResourceCategory fireResourceCategory);

    //修改img数据
    void updateResource(FireResourceCategory fireResourceCategory);

    /**
     * 查询分类树
     *
     * @return FireResourceCategoryDTO
     */
    List<FireResourceCategoryDTO> qryCatTree();

    /**
     * 查询分类列表
     *
     * @param qryCatListRequest QryCatListRequest
     *
     * @return FireResourceCategoryDTO
     */
    List<FireResourceCategoryDTO> qryCatList(QryCatListRequest qryCatListRequest);


    List<ResourceCategoryVO> topFloorList(Long parentId);


    List<ResourceCategoryVO> topFloorDownChildrenList(Long parentId, String longitude, String latitude, String radius,
                                                      String districtCode);

    List<ResourceCategoryVO> findOtherResource(Long parentId, String longitude, String latitude, String radius);


    List<ResourceSimpVO> findTableSimpInfo(String tableName, String tableId, String longitude, String latitude,
                                           String radius, String districtCode);


    List<TopFloorDownDistrictCodeVO> topFloorDownDistrictCodeChildrenList(Long parentId, String longitude,
                                                                          String latitude, String radius,
                                                                          String districtCode);


    Map<String, List<FireSituationVO>> getSimpleGeoSourceNearbyRadius(String longitude, String latitude, String radius,
                                                                      String flag, String districtCode, Integer page,
                                                                      Integer rows) throws Exception;


    List<ResourceSimpVO> findTableSimpInfoU(String tableName, String tableId, String longitude, String latitude,
                                            String radius, String districtCode, Integer page, Integer rows);

    /**
     * 查询资源列表（返回指定公共字段）
     *
     * @param qryResourceListRequest qryResourceRequest
     *
     * @return QryResourceModel
     */
    PageData<List<QryResourceModel>> qryResourceList(QryResourceListRequest qryResourceListRequest);

    /**
     * 查询设备列表（返回指定公共字段）
     *
     * @param qryDeviceListRequest qryDeviceRequest
     *
     * @return QryDeviceModel
     */
    PageData<List<QryDeviceModel>> qryDeviceList(QryDeviceListRequest qryDeviceListRequest);

    /**
     * 设施详情
     *
     * @param tableId tableId
     * @param id      id
     *
     * @return QryDeviceModel
     */
    QryDeviceModel qryDeviceDetail(String tableId, String id);

    /**
     * 资源详情
     *
     * @param tableId tableId
     * @param id      id
     *
     * @return QryResourceModel
     */
    QryResourceModel qryResourceDetail(String tableId, String id);

}
